Computer Systems: A Programmer's Perspective Plus Mastering Engineering With Pearson Etext -- Access Card Package (3rd Edition)
Computer Systems: A Programmer's Perspective Plus Mastering Engineering With Pearson Etext -- Access Card Package (3rd Edition)
3rd Edition
ISBN: 9780134123837
Author: Randal E. Bryant, David R. O'Hallaron
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
True or False: "Content-Encoding: br" is an acceptable header in a response to an HTTP request with a header of "Accept- Encoding: gzip, deflate". Select one: O True O False
Using the domain name www.practice.com, construct the URL for a file called history.html in a folder called About_Us, which is in the web root directory
What is the output of the below code? Select one: O a. Parse error: syntax error. O b. 120 O c. 80 O d. 40
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