Computer Systems: A Programmer's Perspective (3rd Edition)
Computer Systems: A Programmer's Perspective (3rd Edition)
3rd Edition
ISBN: 9780134092997
Author: Bryant
Publisher: PEARSON
bartleby

Concept explainers

Question
Book Icon
Chapter 11, Problem 11.6HW

A.

Program Plan Intro

IP addresses:

  • The IP address denotes an unsigned integer that is 32-bit.
  • The IP addresses is been stored by network programs in IP address structure.
  • The addresses present in IP address structure are stored in network byte order.
  • An unsigned 32-bit integer is transformed from host byte order to network byte order by “htonl” function.
  • An unsigned 32-bit integer is transformed from network byte order host byte order by “ntohl” function.
  • The IP address is presented to humans in a form known as “dotted-decimal” notation.
    • Each byte is been represented by its corresponding decimal value and is separated by a period from other bytes.

Passing program arguments to server:

  • The arguments for “GET” requests are passed in the URI.
  • The character “?” separates filename from the arguments.
  • The character “&” separates each argument.
  • The arguments do not allow spaces in it.

Server passes arguments to child:

  • The server calls “fork” to create a child process and calls “execve” to run program in child’s context once it receives a request.
  • The child process sets CGI environment variable values.
  • The “adder” program can reference it at run time using “getenv” function of linux.

Output is sent by child:

  • The dynamic content of a CGI program is to be sent to standard output.
  • A CGI program sends dynamic content to standard output.
  • It uses “dup2” function for redirecting standard output to connected descriptor associated with client.
  • The result written to standard output by CGI program, it goes directly to client.

A.

Expert Solution
Check Mark

Explanation of Solution

Modified C code:

//Define method

void clienterror(int fd, char *cause, char *errnum, char *shortmsg, char *longmsg);

//Define method

void echo(int connfd);

//Define main method

int main(int argc, char **argv)

{

//Declare variables

int listenfd, connfd;

//Call method

Getnameinfo((SA *) &clientaddr, clientlen, hostname, MAXLINE,port, MAXLINE, 0);

//Display message

printf("Accepted connection from (%s, %s)\n", hostname, port);

//Call method

echo(connfd);

//Close

Close(connfd);

}

//Define method

void echo(int connfd)

{

//Declare variable

size_t n;

//Declare array

char buf[MAXLINE];

//Declare variable

rio_t rio;

//Call method

Rio_readinitb(&rio, connfd);

//Loop

while ((n = Rio_readlineb(&rio, buf, MAXLINE)) != 0)

{

//If condition satisfies

if (strcmp(buf, "\r\n") == 0)

//Break

break;

//Call method

Rio_writen(connfd, buf, n);

}

}

Explanation:

  • The method “echo” declares the variables first.
  • It handles one HTTP response/request transaction.
  • The value is been read using method “readinitb” and is stored.
  • The value is been written into buffer using “written” method.
  • The comparison is made until new line occurs.

B.

Program Plan Intro

IP addresses:

  • The IP address denotes an unsigned integer that is 32-bit.
  • The IP addresses is been stored by network programs in IP address structure.
  • The addresses present in IP address structure are stored in network byte order.
  • An unsigned 32-bit integer is converted from host byte order to network byte order by “htonl” function.
  • An unsigned 32-bit integer is converted from network byte order host byte order by “ntohl” function.
  • The IP address is presented to humans in a form known as “dotted-decimal” notation.
    • Each byte is been represented by its corresponding decimal value and is separated by a period from other bytes.

Passing program arguments to server:

  • The arguments for “GET” requests are passed in the URI.
  • The character “?” separates filename from the arguments.
  • The character “&” separates each argument.
  • The arguments do not allow spaces in it.

Server passes arguments to child:

  • The server calls “fork” to create a child process and calls “execve” to run program in child’s context once it receives a request.
  • The child process sets CGI environment variable values.
  • The “adder” program can reference it at run time using “getenv” function of linux.

Output is sent by child:

  • The dynamic content of a CGI program is to be sent to standard output.
  • A CGI program sends dynamic content to standard output.
  • It uses “dup2” function for redirecting standard output to connected descriptor associated with client.
  • The result written to standard output by CGI program, it goes directly to client.

B.

Expert Solution
Check Mark

Explanation of Solution

Request to TINY for static content:

GET / HTTP/1.1

Host: localhost:5000

User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Connection: keep-alive

Explanation:

  • The given code denotes a request to “TINY” for static content.
  • It echoes each and every request line.
  • It echoes each and every request header.
  • It takes a particular “Accept-Language” and “Accept-Encoding” for the content.

C.

Program Plan Intro

IP addresses:

  • The IP address denotes an unsigned integer that is 32-bit.
  • The IP addresses is been stored by network programs in IP address structure.
  • The addresses present in IP address structure are stored in network byte order.
  •  An unsigned 32-bit integer is converted from host byte order to network byte order by “htonl” function.
  • An unsigned 32-bit integer is converted from network byte order host byte order by “ntohl” function.
  • The IP address is presented to humans in a form known as “dotted-decimal” notation.
    • Each byte is been represented by its corresponding decimal value and is separated by a period from other bytes.

Passing program arguments to server:

  • The arguments for “GET” requests are passed in the URI.
  • The character “?” separates filename from the arguments.
  • The character “&” separates each argument.
  • The arguments do not allow spaces in it.

Server passes arguments to child:

  • The server calls “fork” to create a child process and calls “execve” to run program in child’s context once it receives a request.
  • The child process sets CGI environment variable values.
  • The “adder” program can reference it at run time using “getenv” function of linux.

Output is sent by child:

  • The dynamic content of a CGI program is to be sent to standard output.
  • A CGI program sends dynamic content to standard output.
  • It uses “dup2” function for redirecting standard output to connected descriptor associated with client.
  • The result written to standard output by CGI program, it goes directly to client.

C.

Expert Solution
Check Mark

Explanation of Solution

Version of HTTP:

  • The version of HTTP used by browser is HTTP 1.1.
  • The output from “TINY” is been inspected for determining HTTP version of browser.
  • The “TINY” denotes an iterative server that listens for connection requests on ports.
  • The “TINY” executes infinite server loop; it accepts a connection request repeatedly.
  • It performs the transaction and closes its end of connection.
  • Hence, version of HTTP is “HTTP 1.1”.

D.

Program Plan Intro

IP addresses:

  • The IP address denotes an unsigned integer that is 32-bit.
  • The IP addresses is been stored by network programs in IP address structure.
  • The addresses present in IP address structure are stored in network byte order.
  •  An unsigned 32-bit integer is converted from host byte order to network byte order by “htonl” function.
  • An unsigned 32-bit integer is converted from network byte order host byte order by “ntohl” function.
  • The IP address is presented to humans in a form known as “dotted-decimal” notation.
    • Each byte is been represented by its corresponding decimal value and is separated by a period from other bytes.

Passing program arguments to server:

  • The arguments for “GET” requests are passed in the URI.
  • The character “?” separates filename from the arguments.
  • The character “&” separates each argument.
  • The arguments do not allow spaces in it.

Server passes arguments to child:

  • The server calls “fork” to create a child process and calls “execve” to run program in child’s context once it receives a request.
  • The child process sets CGI environment variable values.
  • The “adder” program can reference it at run time using “getenv” function of linux.

Output is sent by child:

  • The dynamic content of a CGI program is to be sent to standard output.
  • A CGI program sends dynamic content to standard output.
  • It uses “dup2” function for redirecting standard output to connected descriptor associated with client.
  • The result written to standard output by CGI program, it goes directly to client.

D.

Expert Solution
Check Mark

Explanation of Solution

Meaning of HTTP headers:

  • The details of each HTTP header is shown below:
    • Accept:14.1:
      • It can be used for specifying certain media types that are acceptable for response.
      • Accept headers are used to indicate that request is limited specifically to a small set of desired types.
      • It has same impact as in case of an in-line image request.
    • Accept-Encoding: 14.3:
      • The request header field is almost similar to “Accept”.
      • It restricts the content-coding that are acceptable in response.
    •  Accept-Language: 14.4:
      • The “Accept-Language” request header is similar to that of “Accept”.
      • It restricts set of natural languages preferred as response to request.
    • Connection: 14.10:
      • The connection header field allows sender to specify options that are desired for particular connection.
      • It must not be communicated by proxies over further connections.
    • Host: 14.23:
      • The host request header field would specify internet host and port number of resource being requested.
      • The host field value denotes origin server’s naming authority or gateway given by original URL.
      • It allows origin server or gateway in differentiating between ambiguous URLs.
      • The root “/” server’s URL is used for multiple host names with single IP address.
    • User-Agent: 14.43:
      • The user-agent request header has information about user agent initiating the request.
      • It is used for tracing protocol violations, automated acknowledgment of user agents for avoiding limitations of user agent.
      • The requests are been added with the field.
      • The field contains multiple product tokens and comments that identifies agent.
      • It includes sub products that forms a significant part of user agent.
      • The product tokens are listed in order of their significance for application identification.

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Students have asked these similar questions
n this assignment, you will develop a simple Web server in Python that is capableof processing only one request. Specifically, your Web server will(i) Create a connection socket when contacted by a client (browser)(ii) Receive the HTTP request from this connection(iii) Parse the request to determine the specific file being requested(iv) Get the requested file from the server’s file system(v) Create an HTTP response message consisting of the requested filepreceded by header lines(vi) Send the response over the TCP connection to the requesting browser.If a browser requests a file that is not present in your server, your server shouldreturn a “404 Not Found” error message.Your job is to code the steps above, run your server, and then test your server bysending requests from browsers running on different hosts. If you run your serveron a host that already has a Web server running on it, then you should use a differentport than port 80 for your Web server. Make sure to test your program…
Create a server side script using inbuilt modules from Node.js(OS, Path, File system and HTTP).You need to display the total number of JPG files in the current directory or you can choose a particular directory. Please make sure all sub-directories are included in the search for the jpg file. Please send me the Solution in Javascript using Node js Server (Consider the subdirectory condition as well) Thanks in advance
build a shell script that takes a domain as input and gathers as much information about it as possible using commands like WHOIS and dig  the script should accept the following as input:▪ domain eg. yahoo.com▪ email address eg. bob@yahoo.com▪ URL eg. www.yahoo.com▪ the script is better if it accepts the following:▪ IP address eg. 98.137.11.63
Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education